import config from "../config/index.js"

// 请求地址
const baseUrl = config.url

// 超时时间， 单位 ms
const timeout = 1000 * 10

// 接口对象
const api = {}

/* 
	定义接口方法 类型都为string
	desc	接口描述
	name	方法名 例： $api.name 请求接口
	url		请求路径
	method	请求方式 默认GET请求 记得大写
 */
const apiList = [
	{
		desc: '首页海报接口',
		name: 'banners',
		url: '/banners'
	}
]

/* 生成接口 */
apiList.forEach( item => {
	api[item.name] = function(params){
		let { data, header, dataType, ljUrl} = params || {}
		
		return new Promise((resolve, reject) => {
			try{
				uni.request({
					url: ljUrl ? ljUrl : baseUrl + item.url,
					data: data,
					method: item.method || "GET",
					header: header,
					dataType: dataType,
					timeout: timeout,
					success: (res) => {
						if(res.data != null && res.data.hasOwnProperty('code') && res.data.code === 200){
							resolve(parseSuccessResponseData(res))
						}else{
							resolve(parseFailResponseData(res))
						}
					},
					fail: (e) => {
						console.log("错误item.url:", item.url)
						reject(parseFailResponseData(e))
					}
				})
			}catch(e){
				console.log("异常：", e)
				
			}
			
		})
	}
})

/* 处理返回的格式*/
function parseSuccessResponseData(res){
	return res.data || res.result
}
/* 处理错误 */
function parseFailResponseData(e){
	if(e.errMsg){
		console.log("请求错误, e:", e)
	}
	return e;
}
export default api;

